home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / lang / SmallEiffel.lha / SmallEiffel / bin_c / compile_to_jvm25.c < prev    next >
C/C++ Source or Header  |  1998-12-22  |  42KB  |  2,019 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_jvm.h"
  9.  
  10.  
  11. void r98make(T98* C,T0* a1,T0* a2,T0* a3){
  12. C->_clients=a1;
  13. C->_comment=a2;
  14. C->_list=a3;
  15. }
  16.  
  17.  
  18. void r98add_into(T98* C,T0* a1){
  19. T0* _f=NULL;
  20. T2 _i=0;
  21. /*[IF*/
  22. if(((C)->_list/*8*/)!=((void*)(NULL))){
  23. _i=0;
  24. while (!((_i)>(((T101*)((C)->_list/*8*/))->_upper/*8*/))) {
  25. _f=/*(IRF4.6item*/(((T101*)((C)->_list/*8*/))->_storage/*0*/)[_i]/*)*/;
  26. X95set_clients(_f,(C)->_clients/*0*/);
  27. X95add_into(_f,a1);
  28. _i=(_i)+(1);
  29. }
  30. }
  31. /*FI]*/
  32. }
  33. /*No:FEATURE_CLAUSE.comment*/
  34. /*No:FEATURE_CLAUSE.list*/
  35. /*No:FEATURE_CLAUSE.clients*/
  36. /*No:CREATION_CALL_4.start_position*/
  37. /*No:CREATION_CALL_4.us_std_file_read*/
  38.  
  39.  
  40. T0* r258add_comment(T258* C,T0* a1){
  41. T0* R=NULL;
  42. /*[IF*/
  43. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r73count(((T73*)((((T85*)a1))->_list/*4*/)))/*)*/)==(0))){
  44. R=(T0*)C;
  45. }
  46. /*AF*/else{
  47. {T229*n=malloc(sizeof(*n));
  48. *n=M229;
  49. r229make(n,(T0*)C,a1);
  50. R=(T0*)n;
  51. }
  52. }
  53. /*FI]*/
  54. return R;
  55. }
  56.  
  57.  
  58. T6 r258use_current(T258* C){
  59. T6 R=0;
  60. /*[IF*/
  61. if((r258run_args(C))!=((void*)(NULL))){
  62. R=r152use_current((T152*)(r258run_args(C)));
  63. }
  64. /*FI]*/
  65. R=(R)||(X109use_current((C)->_writable/*8*/));
  66. return R;
  67. }
  68.  
  69.  
  70. T0* r258run_args(T258* C){
  71. T0* R=NULL;
  72. R=X165arguments((C)->_call/*20*/);
  73. return R;
  74. }
  75.  
  76.  
  77. T0* r258to_runnable(T258* C,T0* a1){
  78. T0* R=NULL;
  79. /*[IF*/
  80. if(((C)->_current_type/*12*/)==((void*)(NULL))){
  81. r258check_writable(C,a1);
  82. r258check_explicit_type(C);
  83. r258check_created_type(C,(C)->_type/*24*/);
  84. r258check_creation_clause(C,(C)->_type/*24*/);
  85. R=(T0*)C;
  86. }
  87. else{
  88. {T258*n=malloc(sizeof(*n));
  89. *n=M258;
  90. r258make(n,(C)->_start_position/*4*/,(C)->_type/*24*/,(C)->_writable/*8*/,(C)->_call/*20*/);
  91. R=(T0*)n;
  92. }
  93. R=r258to_runnable(((T258*)R),a1);
  94. }
  95. /*FI]*/
  96. return R;
  97. }
  98. /*No:CREATION_CALL_4.writable*/
  99.  
  100.  
  101. T6 r258is_pre_computable(T258* C){
  102. T6 R=0;
  103. T0* _rfctbcn=NULL;
  104. T0* _rfn=NULL;
  105. T0* _rfct=NULL;
  106. /*[IF*/
  107. if(X109is_result((C)->_writable/*8*/)){
  108. /*[IF*/
  109. if((r258run_args(C))==((void*)(NULL))){
  110. R=1;
  111. }
  112. else{
  113. R=r152is_pre_computable((T152*)(r258run_args(C)));
  114. }
  115. /*FI]*/
  116. /*[IF*/
  117. if(R){
  118. /*[IF*/
  119. if(X27is_pre_computable((C)->_run_feature/*16*/)){
  120. }
  121. else{
  122. _rfct=/*X27current_type*/((T0*)((T26*)((C)->_run_feature/*16*/))->_current_type/*4*/);
  123. _rfctbcn=((T70*)(((T63*)(X52base_class(_rfct)))->_name/*24*/))->_to_string/*0*/;
  124. _rfn=X50to_string(/*X27name*/((T0*)((T26*)((C)->_run_feature/*16*/))->_name/*16*/));
  125. /*[IF*/
  126. if((((T0*)ms14_1696))==((void*)(_rfn))){
  127. /*[IF*/
  128. if((((T0*)ms14_1990))==((void*)(_rfctbcn))){
  129. }
  130.  else if((((T0*)ms14_14982))==((void*)(_rfctbcn))){
  131. }
  132.  else if((((T0*)ms14_5046))==((void*)(_rfctbcn))){
  133. }
  134.  else if((((T0*)ms14_12700))==((void*)(_rfctbcn))){
  135. }
  136.  else if((((T0*)ms14_16887))==((void*)(_rfctbcn))){
  137. }
  138.  else if((((T0*)ms14_19334))==((void*)(_rfctbcn))){
  139. }
  140. else{
  141. R=0;
  142. }
  143. /*FI]*/
  144. }
  145.  else if((((T0*)ms14_2675))==((void*)(_rfn))){
  146. /*[IF*/
  147. if((((T0*)ms14_5046))==((void*)(_rfctbcn))){
  148. }
  149. else{
  150. R=0;
  151. }
  152. /*FI]*/
  153. }
  154.  else if((((T0*)ms14_27651))==((void*)(_rfn))){
  155. /*[IF*/
  156. if((((T0*)ms14_1990))==((void*)(_rfctbcn))){
  157. }
  158.  else if((((T0*)ms14_14982))==((void*)(_rfctbcn))){
  159. }
  160.  else if((((T0*)ms14_12700))==((void*)(_rfctbcn))){
  161. }
  162. else{
  163. R=0;
  164. }
  165. /*FI]*/
  166. }
  167. else{
  168. R=0;
  169. }
  170. /*FI]*/
  171. }
  172. /*FI]*/
  173. }
  174. /*FI]*/
  175. }
  176. /*FI]*/
  177. return R;
  178. }
  179. /*No:CREATION_CALL_4.fz_03*/
  180.  
  181.  
  182. void r258compile_to_jvm0(T0* a1){
  183. T2 _dummy=0;
  184. /*[IF*/
  185. if(X52is_reference(a1)){
  186. r23jvm_basic_new((T23*)(X52run_class(a1)));
  187. }
  188. else{
  189. _dummy=X52jvm_push_default(a1);
  190. }
  191. /*FI]*/
  192. }
  193. /*No:CREATION_CALL_4.us_string*/
  194. /*No:CREATION_CALL_4.run_feature*/
  195. /*No:CREATION_CALL_4.us_array*/
  196.  
  197.  
  198. void r258check_writable(T258* C,T0* a1){
  199. T0* _w=NULL;
  200. C->_current_type=a1;
  201. _w=X109to_runnable((C)->_writable/*8*/,a1);
  202. /*[IF*/
  203. if((_w)==((void*)(NULL))){
  204. r21add_position(X109start_position((C)->_writable/*8*/));
  205. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms253_64251);
  206. r21fatal_error((T21*)(oBC12eh),b1);
  207. }/*]*/
  208. }
  209. else{
  210. C->_writable=_w;
  211. }
  212. /*FI]*/
  213. }
  214.  
  215.  
  216. void r258check_creation_clause(T258* C,T0* a1){
  217. T0* _args=NULL;
  218. T0* _top=NULL;
  219. T0* _bottom=NULL;
  220. T0* _fn=NULL;
  221. T0* _ct=NULL;
  222. _fn=/*X165feature_name*/((T0*)((T168*)((C)->_call/*20*/))->_feature_name/*8*/);
  223. _top=r59base_class((T59*)(X50start_position(_fn)));
  224. _bottom=X52base_class(a1);
  225. /*[IF*/
  226. if(X52is_like_current(a1)){
  227. _fn=r63new_name_of(((T63*)_bottom),_top,_fn);
  228. /*[IF*/
  229. if((_fn)==((void*)(NULL))){
  230. _fn=/*X165feature_name*/((T0*)((T168*)((C)->_call/*20*/))->_feature_name/*8*/);
  231. r21add_position(X50start_position(_fn));
  232. /*[IRF3.6append*/{T0* b1=((T0*)ms13_7398);
  233. r7append((T7*)(oBC21explanation),b1);
  234. }/*]*/
  235. /*[IRF3.6append*/{T0* b1=X50to_string(_fn);
  236. r7append((T7*)(oBC21explanation),b1);
  237. }/*]*/
  238. /*[IRF3.6append*/{T0* b1=((T0*)ms257_25652);
  239. r7append((T7*)(oBC21explanation),b1);
  240. }/*]*/
  241. /*[IRF3.6append*/{T0* b1=X52run_time_mark(a1);
  242. r7append((T7*)(oBC21explanation),b1);
  243. }/*]*/
  244. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_166);
  245. r21fatal_error((T21*)(oBC12eh),b1);
  246. }/*]*/
  247. }
  248. /*FI]*/
  249. }
  250. /*FI]*/
  251. C->_run_feature=r23get_feature((T23*)(X52run_class(a1)),_fn);
  252. /*[IF*/
  253. if(((C)->_run_feature/*16*/)==((void*)(NULL))){
  254. r258cp_not_found(C,_fn);
  255. }
  256. /*FI]*/
  257. /*[IF*/
  258. if(((T22*)(oBC12small_eiffel))->_short_flag/*8*/){
  259. }
  260.  else if(!(X52has_creation(a1,_fn))){
  261. r21add_position(X50start_position(/*X165feature_name*/((T0*)((T168*)((C)->_call/*20*/))->_feature_name/*8*/)));
  262. r21add_position(X50start_position(_fn));
  263. /*[IRF3.6append*/{T0* b1=X50to_string(_fn);
  264. r7append((T7*)(oBC21explanation),b1);
  265. }/*]*/
  266. /*[IRF3.6append*/{T0* b1=((T0*)ms257_45856);
  267. r7append((T7*)(oBC21explanation),b1);
  268. }/*]*/
  269. r21add_type(a1,((T0*)ms13_47));
  270. r21print_as_fatal_error((T21*)(oBC12eh));
  271. }
  272. /*FI]*/
  273. X27add_client((C)->_run_feature/*16*/,X52run_class((C)->_current_type/*12*/));
  274. /*[IF*/
  275. if((X27result_type((C)->_run_feature/*16*/))!=((void*)(NULL))){
  276. r21add_position(X27start_position((C)->_run_feature/*16*/));
  277. r21add_position(X50start_position(_fn));
  278. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms257_67122);
  279. r21fatal_error((T21*)(oBC12eh),b1);
  280. }/*]*/
  281. }
  282. /*FI]*/
  283. /*[IF*/
  284. if(((r258arg_count(C))==(0))&&((X27arguments((C)->_run_feature/*16*/))!=((void*)(NULL)))){
  285. r21add_position(X27start_position((C)->_run_feature/*16*/));
  286. r21add_position((C)->_start_position/*4*/);
  287. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms257_63744);
  288. r21fatal_error((T21*)(oBC12eh),b1);
  289. }/*]*/
  290. }
  291. /*FI]*/
  292. /*[IF*/
  293. if((r258arg_count(C))>(0)){
  294. _ct=/*X27current_type*/((T0*)((T26*)(r22top_rf((T22*)(oBC12small_eiffel))))->_current_type/*4*/);
  295. _args=r152to_runnable((T152*)(X165arguments((C)->_call/*20*/)),_ct);
  296. /*[IF*/
  297. if((_args)==((void*)(NULL))){
  298. r258error(r152start_position((T152*)(X165arguments((C)->_call/*20*/))),((T0*)ms13_14714));
  299. }
  300. else{
  301. r152match_with(((T152*)_args),(C)->_run_feature/*16*/,_ct);
  302. }
  303. /*FI]*/
  304. }
  305. /*FI]*/
  306. C->_call=X165make_runnable((C)->_call/*20*/,(C)->_writable/*8*/,_args,(C)->_run_feature/*16*/);
  307. }
  308. /*No:CREATION_CALL_4.fz_bad_arguments*/
  309. /*No:CREATION_CALL_4.fz_09*/
  310.  
  311.  
  312. void r258compile_to_jvm(T258* C){
  313. T0* _t=NULL;
  314. T0* _w=NULL;
  315. _w=(C)->_writable/*8*/;
  316. _t=X52run_type((C)->_type/*24*/);
  317. r258compile_to_jvm0(_t);
  318. r24inside_new((T24*)(oBC12jvm),(C)->_run_feature/*16*/,(C)->_call/*20*/);
  319. X52jvm_check_class_invariant(_t);
  320. X109jvm_assign(_w);
  321. }
  322.  
  323.  
  324. T2 r258arg_count(T258* C){
  325. T2 R=0;
  326. /*[IF*/
  327. if(((C)->_call/*20*/)!=((void*)(NULL))){
  328. R=X165arg_count((C)->_call/*20*/);
  329. }
  330. /*FI]*/
  331. return R;
  332. }
  333. /*No:CREATION_CALL_4.fatal_error*/
  334. /*No:CREATION_CALL_4.us_with_capacity*/
  335. /*No:CREATION_CALL_4.us_blank*/
  336. /*No:CREATION_CALL_4.us_dictionary*/
  337. /*No:CREATION_CALL_4.us_fixed_array*/
  338. /*No:CREATION_CALL_4.type*/
  339.  
  340.  
  341. void r258check_created_type(T258* C,T0* a1){
  342. T0* _rt=NULL;
  343. _rt=X52run_type(a1);
  344. /*[IF*/
  345. if(((T22*)(oBC12small_eiffel))->_short_flag/*8*/){
  346. }
  347.  else if(((T63*)(X52base_class(_rt)))->_is_deferred/*16*/){
  348. r21add_type(_rt,((T0*)ms253_11858));
  349. r258warning((C)->_start_position/*4*/,((T0*)ms253_30996));
  350. }
  351. /*FI]*/
  352. /*[IF*/
  353. if(X52is_formal_generic(a1)){
  354. r21add_position((C)->_start_position/*4*/);
  355. /*[IRF3.6append*/{T0* b1=((T0*)ms253_77140);
  356. r7append((T7*)(oBC21explanation),b1);
  357. }/*]*/
  358. r21add_type(a1,((T0*)ms253_180));
  359. r21print_as_fatal_error((T21*)(oBC12eh));
  360. }
  361. /*FI]*/
  362. r23set_at_run_time((T23*)(X52run_class(_rt)));
  363. }
  364.  
  365.  
  366. void r258warning(T0* a1,T0* a2){
  367. r21add_position(a1);
  368. r21warning((T21*)(oBC12eh),a2);
  369. }
  370. /*No:CREATION_CALL_4.current_type*/
  371. /*No:CREATION_CALL_4.us_make*/
  372. /*No:CREATION_CALL_4.us_std_file_write*/
  373. /*No:CREATION_CALL_4.fz_dot*/
  374. /*No:CREATION_CALL_4.call*/
  375.  
  376.  
  377. void r258error(T0* a1,T0* a2){
  378. r21add_position(a1);
  379. r21error((T21*)(oBC12eh),a2);
  380. }
  381. /*No:CREATION_CALL_4.end_mark_comment*/
  382.  
  383.  
  384. void r258make(T258* C,T0* a1,T0* a2,T0* a3,T0* a4){
  385. C->_start_position=a1;
  386. C->_type=a2;
  387. C->_writable=a3;
  388. C->_call=a4;
  389. }
  390.  
  391.  
  392. void r258check_explicit_type(T258* C){
  393. T0* _t=NULL;
  394. T0* _ct=NULL;
  395. _ct=/*X27current_type*/((T0*)((T26*)(r22top_rf((T22*)(oBC12small_eiffel))))->_current_type/*4*/);
  396. _t=X52to_runnable((C)->_type/*24*/,_ct);
  397. /*[IF*/
  398. if(((_t)==((void*)(NULL)))||(!(X52is_run_type(_t)))){
  399. r21add_position(X52start_position((C)->_type/*24*/));
  400. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms255_33726);
  401. r21fatal_error((T21*)(oBC12eh),b1);
  402. }/*]*/
  403. }
  404. else{
  405. C->_type=_t;
  406. }
  407. /*FI]*/
  408. /*[IF*/
  409. if(!(X52is_a((C)->_type/*24*/,X109result_type((C)->_writable/*8*/)))){
  410. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms255_34704);
  411. r21fatal_error((T21*)(oBC12eh),b1);
  412. }/*]*/
  413. }
  414. /*FI]*/
  415. }
  416.  
  417.  
  418. void r258cp_not_found(T258* C,T0* a1){
  419. r21add_position(X50start_position(/*X165feature_name*/((T0*)((T168*)((C)->_call/*20*/))->_feature_name/*8*/)));
  420. r21add_position(X50start_position(a1));
  421. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms257_53476);
  422. r21fatal_error((T21*)(oBC12eh),b1);
  423. }/*]*/
  424. }
  425.  
  426.  
  427. void r258afd_check(T258* C){
  428. /*[IF*/
  429. if((r258arg_count(C))>(0)){
  430. r152afd_check((T152*)(r258run_args(C)));
  431. }
  432. /*FI]*/
  433. }
  434. /*No:PARSER_BUFFER.is_ready*/
  435.  
  436.  
  437. T0* r74get_line(T2 a1){
  438. T0* R=NULL;
  439. /*[IF*/
  440. if((a1)<=(((T68*)(oBC74text))->_upper/*8*/)){
  441. R=/*(IRF4.6item*/(((T68*)(oBC74text))->_storage/*0*/)[a1]/*)*/;
  442. /*[IRF3.3clear*/((((T7*)(((T7*)R))))->_count)=(0);
  443. /*]*/
  444. }
  445. else{
  446. {T7*n=malloc(sizeof(*n));
  447. *n=M7;
  448. r7make(n,80);
  449. R=(T0*)n;
  450. }
  451. r68add_last((T68*)(oBC74text),R);
  452. }
  453. /*FI]*/
  454. return R;
  455. }
  456. T0*oBC74text=NULL;
  457. /*No:PARSER_BUFFER.path*/
  458.  
  459.  
  460. T0* r74item(T2 a1){
  461. T0* R=NULL;
  462. R=/*(IRF4.6item*/(((T68*)(oBC74text))->_storage/*0*/)[a1]/*)*/;
  463. return R;
  464. }
  465. /*No:PARSER_BUFFER.medium_line_size*/
  466.  
  467.  
  468. void r74load_file(T74* C,T0* a1){
  469. T2 _i=0;
  470. r61connect_to((T61*)(oBC12tmp_file_read),a1);
  471. /*[IF*/
  472. if(/*(IRF4.7is_connected*/(((T61*)(oBC12tmp_file_read))->_path/*4*/)!=(NULL)/*)*/){
  473. C->_path=a1;
  474. /*[IF*/
  475. if((r74get_line(0))!=((void*)(NULL))){
  476. }
  477. /*FI]*/
  478. _i=1;
  479. r61read_line_in((T61*)(oBC12tmp_file_read),r74get_line(_i));
  480. while (!(r61end_of_input((T61*)(oBC12tmp_file_read)))) {
  481. _i=(_i)+(1);
  482. r61read_line_in((T61*)(oBC12tmp_file_read),r74get_line(_i));
  483. }
  484. /*[IF*/
  485. if(/*(IRF4.7empty*/(((T7*)(/*(IRF4.6item*/(((T68*)(oBC74text))->_storage/*0*/)[_i]/*)*/))->_count/*4*/)==(0)/*)*/){
  486. C->_count=(_i)-(1);
  487. }
  488. else{
  489. C->_count=_i;
  490. }
  491. /*FI]*/
  492. r61disconnect((T61*)(oBC12tmp_file_read));
  493. }
  494. else{
  495. C->_path=NULL;
  496. }
  497. /*FI]*/
  498. }
  499. /*No:PARSER_BUFFER.count*/
  500. /*No:PARSER_BUFFER.make*/
  501. /*No:PARSER_BUFFER.unset_is_ready*/
  502. /*No:CALL_INFIX_OR.static_value*/
  503. /*No:CALL_INFIX_OR.feature_name*/
  504.  
  505.  
  506. T6 r123is_static(T123* C){
  507. T6 R=0;
  508. /*[IF*/
  509. if(X52is_boolean(X109result_type((C)->_target/*4*/))){
  510. /*[IF*/
  511. if((X109is_static((C)->_target/*4*/))&&(X109is_static(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/))){
  512. R=1;
  513. C->_static_value_mem=(X109static_value((C)->_target/*4*/))+(X109static_value(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/));
  514. /*[IF*/
  515. if(((C)->_static_value_mem/*20*/)==(2)){
  516. C->_static_value_mem=1;
  517. }
  518. /*FI]*/
  519. }
  520. /*FI]*/
  521. }
  522. /*FI]*/
  523. return R;
  524. }
  525. /*No:CALL_INFIX_OR.is_manifest_string*/
  526.  
  527.  
  528. T0* r123start_position(T123* C){
  529. T0* R=NULL;
  530. R=((T141*)((C)->_feature_name/*12*/))->_start_position/*8*/;
  531. return R;
  532. }
  533.  
  534.  
  535. T0* r123add_comment(T123* C,T0* a1){
  536. T0* R=NULL;
  537. /*[IF*/
  538. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r73count(((T73*)((((T85*)a1))->_list/*4*/)))/*)*/)==(0))){
  539. R=(T0*)C;
  540. }
  541. else{
  542. {T234*n=malloc(sizeof(*n));
  543. *n=M234;
  544. r234make(n,(T0*)C,a1);
  545. R=(T0*)n;
  546. }
  547. }
  548. /*FI]*/
  549. return R;
  550. }
  551.  
  552.  
  553. T2 r123to_integer(T123* C){
  554. T2 R=0;
  555. r123error(r123start_position(C),((T0*)ms13_45846));
  556. return R;
  557. }
  558.  
  559.  
  560. T6 r123use_current(T123* C){
  561. T6 R=0;
  562. /*[IF*/
  563. {/*AT*/R=r152use_current((T152*)((C)->_arguments/*8*/));
  564. }
  565. /*FI]*/
  566. /*[IF*/
  567. if(R){
  568. }
  569.  else if(X109is_current((C)->_target/*4*/)){
  570. R=X27use_current((C)->_run_feature/*16*/);
  571. }
  572. else{
  573. R=X109use_current((C)->_target/*4*/);
  574. }
  575. /*FI]*/
  576. return R;
  577. }
  578. /*No:CALL_INFIX_OR.jvm_branch_if_true*/
  579.  
  580.  
  581. T0* r123to_runnable(T123* C,T0* a1){
  582. T0* R=NULL;
  583. T0* _rf=NULL;
  584. T0* _tbee=NULL;
  585. T0* _at=NULL;
  586. T0* _tt=NULL;
  587. T0* _a=NULL;
  588. T0* _t=NULL;
  589. _t=r123runnable_expression((C)->_target/*4*/,a1);
  590. _a=r123runnable_args((C)->_arguments/*8*/,a1);
  591. _tt=X109result_type(_t);
  592. _at=X109result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/);
  593. /*[IF*/
  594. /*AF*//*AE*/
  595. /*FI]*/
  596. _rf=r123run_feature_for(C,_t,a1);
  597. /*[IF*/
  598. if(((C)->_run_feature/*16*/)==((void*)(NULL))){
  599. C->_target=_t;
  600. C->_arguments=_a;
  601. C->_run_feature=_rf;
  602. r123run_feature_match(C,a1);
  603. R=(T0*)C;
  604. }
  605.  else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*8*/)))){
  606. R=(T0*)C;
  607. }
  608. else{
  609. {T123*n=malloc(sizeof(*n));
  610. *n=M123;
  611. r123with(n,_t,(C)->_feature_name/*12*/,_a,_rf,a1);
  612. R=(T0*)n;
  613. }
  614. }
  615. /*FI]*/
  616. return R;
  617. }
  618.  
  619.  
  620. T2 r123compile_to_jvm_into(T123* C,T0* a1){
  621. T2 R=0;
  622. R=r123standard_compile_to_jvm_into(C,a1);
  623. return R;
  624. }
  625. /*No:CALL_INFIX_OR.is_pre_computable*/
  626. /*No:CALL_INFIX_OR.fz_bad_argument*/
  627. /*No:CALL_INFIX_OR.fz_iinaiv*/
  628.  
  629.  
  630. T0* r123result_type(T123* C){
  631. T0* R=NULL;
  632. T0* _tla=NULL;
  633. R=X27result_type((C)->_run_feature/*16*/);
  634. /*[IF*/
  635. if(X52is_like_current(R)){
  636. R=/*X27current_type*/((T0*)((T26*)((C)->_run_feature/*16*/))->_current_type/*4*/);
  637. }
  638. else{
  639. _tla=R;
  640. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  641. case 262: 
  642. break;
  643. default:
  644. _tla=NULL;
  645. };/*[IF*/
  646. if((_tla)!=((void*)(NULL))){
  647. R=X52run_type(X109result_type(/*(IRF4.6arg1*//*(IRF4.3first*/(((T152*)((C)->_arguments/*8*/)))->_first_one/*0*//*)*//*)*/));
  648. }
  649. /*FI]*/
  650. }
  651. /*FI]*/
  652. return R;
  653. }
  654. /*No:CALL_INFIX_OR.static_value_mem*/
  655. /*No:CALL_INFIX_OR.run_feature*/
  656.  
  657.  
  658. T0* r123runnable_args(T0* a1,T0* a2){
  659. T0* R=NULL;
  660. R=r152to_runnable(((T152*)a1),a2);
  661. /*[IF*/
  662. if((R)==((void*)(NULL))){
  663. r21add_position(r152start_position(((T152*)a1)));
  664. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_13065);
  665. r21fatal_error((T21*)(oBC12eh),b1);
  666. }/*]*/
  667. }
  668. /*FI]*/
  669. return R;
  670. }
  671.  
  672.  
  673. void r123standard_compile_target_to_jvm(T123* C){
  674. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T123* C1=C;
  675. r24call_proc_call_mapping((T24*)(oBC12jvm),(T0*)C1);
  676. }/*]*/
  677. /*]*/
  678. X52jvm_check_class_invariant(r123result_type(C));
  679. }
  680. /*No:CALL_INFIX_OR.compile_to_jvm_assignment*/
  681. /*No:CALL_INFIX_OR.fz_07*/
  682.  
  683.  
  684. void r123compile_to_jvm_old(T123* C){
  685. X109compile_to_jvm_old((C)->_target/*4*/);
  686. /*[IF*/
  687. {/*AT*/r152compile_to_jvm_old((T152*)((C)->_arguments/*8*/));
  688. }
  689. /*FI]*/
  690. }
  691. /*No:CALL_INFIX_OR.jvm_assign*/
  692. /*No:CALL_INFIX_OR.jvm_branch_if_false*/
  693. /*No:CALL_INFIX_OR.compile_to_jvm*/
  694. /*No:CALL_INFIX_OR.arg_count*/
  695.  
  696.  
  697. void r123with(T123* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  698. C->_target=a1;
  699. C->_feature_name=a2;
  700. C->_arguments=a3;
  701. C->_run_feature=a4;
  702. r123run_feature_match(C,a5);
  703. }
  704. /*No:CALL_INFIX_OR.call_proc_call_c2jvm*/
  705. /*No:CALL_INFIX_OR.is_result*/
  706. /*No:CALL_INFIX_OR.fatal_error*/
  707.  
  708.  
  709. void r123run_feature_match(T123* C,T0* a1){
  710. r123run_feature_has_result(C);
  711. r152match_with((T152*)((C)->_arguments/*8*/),(C)->_run_feature/*16*/,a1);
  712. }
  713. /*No:CALL_INFIX_OR.arguments*/
  714.  
  715.  
  716. T0* r123runnable_expression(T0* a1,T0* a2){
  717. T0* R=NULL;
  718. R=X109to_runnable(a1,a2);
  719. /*[IF*/
  720. if((R)==((void*)(NULL))){
  721. r21add_position(X109start_position(a1));
  722. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms121_16515);
  723. r21fatal_error((T21*)(oBC12eh),b1);
  724. }/*]*/
  725. }
  726. /*FI]*/
  727. return R;
  728. }
  729. /*No:CALL_INFIX_OR.can_be_dropped*/
  730. /*No:CALL_INFIX_OR.implicit_cast*/
  731. /*No:CALL_INFIX_OR.compile_target_to_jvm*/
  732. /*No:CALL_INFIX_OR.isa_dca_inline_argument*/
  733. /*No:CALL_INFIX_OR.us_or*/
  734. /*No:CALL_INFIX_OR.arg1*/
  735.  
  736.  
  737. void r123run_feature_has_result(T123* C){
  738. /*[IF*/
  739. if((X27result_type((C)->_run_feature/*16*/))==((void*)(NULL))){
  740. r21add_position(X27start_position((C)->_run_feature/*16*/));
  741. r21add_position(((T141*)((C)->_feature_name/*12*/))->_start_position/*8*/);
  742. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms120_53650);
  743. r21fatal_error((T21*)(oBC12eh),b1);
  744. }/*]*/
  745. }
  746. /*FI]*/
  747. }
  748.  
  749.  
  750. T2 r123jvm_standard_branch_if_false(T123* C){
  751. T2 R=0;
  752. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T123* C1=C;
  753. r24call_proc_call_mapping((T24*)(oBC12jvm),(T0*)C1);
  754. }/*]*/
  755. /*]*/
  756. R=r28opcode_ifeq((T28*)(oBC12code_attribute));
  757. return R;
  758. }
  759.  
  760.  
  761. T0* r123run_feature_for(T123* C,T0* a1,T0* a2){
  762. T0* R=NULL;
  763. T0* _rc=NULL;
  764. _rc=X52run_class(X109result_type(a1));
  765. R=r23get_rf(((T23*)_rc),a1,(C)->_feature_name/*12*/,a2);
  766. return R;
  767. }
  768. /*No:CALL_INFIX_OR.target*/
  769.  
  770.  
  771. void r123error(T0* a1,T0* a2){
  772. r21add_position(a1);
  773. r21error((T21*)(oBC12eh),a2);
  774. }
  775.  
  776.  
  777. void r123make(T123* C,T0* a1,T0* a2,T0* a3){
  778. C->_target=a1;
  779. {T141*n=malloc(sizeof(*n));
  780. *n=M141;
  781. r141make(n,r123operator(),a2);
  782. C->_feature_name=(T0*)n;
  783. }
  784. {T152*n=malloc(sizeof(*n));
  785. *n=M152;
  786. /*[IRF3.3make_1*/((((T152*)(n)))->_first_one)=(a3);
  787. /*]*/
  788. C->_arguments=(T0*)n;
  789. }
  790. }
  791. /*No:CALL_INFIX_OR.is_current*/
  792.  
  793.  
  794. T2 r123standard_compile_to_jvm_into(T123* C,T0* a1){
  795. T2 R=0;
  796. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T123* C1=C;
  797. r24call_proc_call_mapping((T24*)(oBC12jvm),(T0*)C1);
  798. }/*]*/
  799. /*]*/
  800. R=X52jvm_convert_to(X52run_type(r123result_type(C)),a1);
  801. return R;
  802. }
  803. /*No:CALL_INFIX_OR.is_void*/
  804.  
  805.  
  806. T0* r123operator(void){
  807. T0* R=NULL;
  808. R=((T0*)ms14_456);
  809. return R;
  810. }
  811.  
  812.  
  813. T2 r123jvm_standard_branch_if_true(T123* C){
  814. T2 R=0;
  815. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T123* C1=C;
  816. r24call_proc_call_mapping((T24*)(oBC12jvm),(T0*)C1);
  817. }/*]*/
  818. /*]*/
  819. R=r28opcode_ifne((T28*)(oBC12code_attribute));
  820. return R;
  821. }
  822.  
  823.  
  824. void r123afd_check(T123* C){
  825. T0* _running=NULL;
  826. T0* _rc=NULL;
  827. _rc=X52run_class(X109result_type((C)->_target/*4*/));
  828. _running=(((T23*)_rc))->_running/*12*/;
  829. /*[IF*/
  830. if((_running)==((void*)(NULL))){
  831. r21add_position(X109start_position((C)->_target/*4*/));
  832. /*[IRF3.6append*/{T0* b1=((T0*)ms121_181815);
  833. r7append((T7*)(oBC21explanation),b1);
  834. }/*]*/
  835. /*[IRF3.6append*/{T0* b1=X52run_time_mark((((T23*)_rc))->_current_type/*0*/);
  836. r7append((T7*)(oBC21explanation),b1);
  837. }/*]*/
  838. /*[IRF3.6append*/{T0* b1=((T0*)ms13_20094);
  839. r7append((T7*)(oBC21explanation),b1);
  840. }/*]*/
  841. r21print_as_warning((T21*)(oBC12eh));
  842. r23set_at_run_time(((T23*)_rc));
  843. }
  844.  else if((r340count(((T340*)_running)))>(1)){
  845. r335update((C)->_target/*4*/,(C)->_run_feature/*16*/);
  846. }
  847. /*FI]*/
  848. X109afd_check((C)->_target/*4*/);
  849. /*[IF*/
  850. {/*AT*/r152afd_check((T152*)((C)->_arguments/*8*/));
  851. }
  852. /*FI]*/
  853. }
  854.  
  855.  
  856. T2 r156static_value(T156* C){
  857. T2 R=0;
  858. T0* _rf=NULL;
  859. T0* _running=NULL;
  860. _running=((T23*)(X27run_class((C)->_run_feature/*16*/)))->_running/*12*/;
  861. /*[IF*/
  862. if(((_running)!=((void*)(NULL)))&&((r340count(((T340*)_running)))==(1))){
  863. _rf=r23dynamic((T23*)(r340first(((T340*)_running))),(C)->_run_feature/*16*/);
  864. /*[IF*/
  865. if(X27is_static(_rf)){
  866. R=X27static_value_mem(_rf);
  867. }
  868. /*FI]*/
  869. }
  870. /*FI]*/
  871. return R;
  872. }
  873. /*No:CALL_N.feature_name*/
  874.  
  875.  
  876. T6 r156is_static(T156* C){
  877. T6 R=0;
  878. T0* _rf=NULL;
  879. T0* _running=NULL;
  880. _running=((T23*)(X27run_class((C)->_run_feature/*16*/)))->_running/*12*/;
  881. /*[IF*/
  882. if(((_running)!=((void*)(NULL)))&&((r340count(((T340*)_running)))==(1))){
  883. _rf=r23dynamic((T23*)(r340first(((T340*)_running))),(C)->_run_feature/*16*/);
  884. /*[IF*/
  885. if(X27is_static(_rf)){
  886. R=1;
  887. }
  888. /*FI]*/
  889. }
  890. /*FI]*/
  891. return R;
  892. }
  893. /*No:CALL_N.is_manifest_string*/
  894.  
  895.  
  896. T0* r156start_position(T156* C){
  897. T0* R=NULL;
  898. R=X50start_position((C)->_feature_name/*8*/);
  899. return R;
  900. }
  901.  
  902.  
  903. T0* r156add_comment(T156* C,T0* a1){
  904. T0* R=NULL;
  905. /*[IF*/
  906. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r73count(((T73*)((((T85*)a1))->_list/*4*/)))/*)*/)==(0))){
  907. R=(T0*)C;
  908. }
  909. else{
  910. {T234*n=malloc(sizeof(*n));
  911. *n=M234;
  912. r234make(n,(T0*)C,a1);
  913. R=(T0*)n;
  914. }
  915. }
  916. /*FI]*/
  917. return R;
  918. }
  919.  
  920.  
  921. T2 r156to_integer(T156* C){
  922. T2 R=0;
  923. r156error(r156start_position(C),((T0*)ms13_45846));
  924. return R;
  925. }
  926.  
  927.  
  928. T6 r156use_current(T156* C){
  929. T6 R=0;
  930. /*[IF*/
  931. if((/*(IRF4.6arg_count*/r152count(((T152*)((C)->_arguments/*12*/)))/*)*/)>(0)){
  932. R=r152use_current((T152*)((C)->_arguments/*12*/));
  933. }
  934. /*FI]*/
  935. /*[IF*/
  936. if(R){
  937. }
  938.  else if(X109is_current((C)->_target/*4*/)){
  939. R=X27use_current((C)->_run_feature/*16*/);
  940. }
  941. else{
  942. R=X109use_current((C)->_target/*4*/);
  943. }
  944. /*FI]*/
  945. return R;
  946. }
  947. /*No:CALL_N.jvm_branch_if_true*/
  948.  
  949.  
  950. T0* r156to_runnable(T156* C,T0* a1){
  951. T0* R=NULL;
  952. T0* _rf=NULL;
  953. T0* _a=NULL;
  954. T0* _t=NULL;
  955. _t=r156runnable_expression((C)->_target/*4*/,a1);
  956. _a=r156runnable_args((C)->_arguments/*12*/,a1);
  957. _rf=r156run_feature_for(C,_t,a1);
  958. /*[IF*/
  959. if(((C)->_run_feature/*16*/)==((void*)(NULL))){
  960. C->_target=_t;
  961. C->_arguments=_a;
  962. C->_run_feature=_rf;
  963. r156run_feature_match(C,a1);
  964. R=(T0*)C;
  965. }
  966.  else if(((_t)==((void*)((C)->_target/*4*/)))&&((_a)==((void*)((C)->_arguments/*12*/)))){
  967. R=(T0*)C;
  968. }
  969. else{
  970. {T156*n=malloc(sizeof(*n));
  971. *n=M156;
  972. r156with(n,_t,(C)->_feature_name/*8*/,_a,_rf,a1);
  973. R=(T0*)n;
  974. }
  975. }
  976. /*FI]*/
  977. return R;
  978. }
  979.  
  980.  
  981. T2 r156compile_to_jvm_into(T156* C,T0* a1){
  982. T2 R=0;
  983. R=r156standard_compile_to_jvm_into(C,a1);
  984. return R;
  985. }
  986. /*No:CALL_N.is_pre_computable*/
  987. /*No:CALL_N.fz_bad_argument*/
  988. /*No:CALL_N.fz_iinaiv*/
  989.  
  990.  
  991. T0* r156result_type(T156* C){
  992. T0* R=NULL;
  993. T0* _e=NULL;
  994. T0* _tla=NULL;
  995. R=X27result_type((C)->_run_feature/*16*/);
  996. /*[IF*/
  997. if(X52is_like_current(R)){
  998. R=/*X27current_type*/((T0*)((T26*)((C)->_run_feature/*16*/))->_current_type/*4*/);
  999. }
  1000. else{
  1001. _tla=R;
  1002. if(NULL!=(_tla))switch(((T0*)_tla)->id) {
  1003. case 262: 
  1004. break;
  1005. default:
  1006. _tla=NULL;
  1007. };/*[IF*/
  1008. if((_tla)!=((void*)(NULL))){
  1009. _e=r152expression((T152*)((C)->_arguments/*12*/),/*(IRF4.6rank*/(((T192*)((((T262*)_tla))->_like_what/*8*/)))->_rank/*8*//*)*/);
  1010. R=X52run_type(X109result_type(_e));
  1011. }
  1012. /*FI]*/
  1013. }
  1014. /*FI]*/
  1015. return R;
  1016. }
  1017. /*No:CALL_N.run_feature*/
  1018.  
  1019.  
  1020. T0* r156runnable_args(T0* a1,T0* a2){
  1021. T0* R=NULL;
  1022. R=r152to_runnable(((T152*)a1),a2);
  1023. /*[IF*/
  1024. if((R)==((void*)(NULL))){
  1025. r21add_position(r152start_position(((T152*)a1)));
  1026. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms13_13065);
  1027. r21fatal_error((T21*)(oBC12eh),b1);
  1028. }/*]*/
  1029. }
  1030. /*FI]*/
  1031. return R;
  1032. }
  1033.  
  1034.  
  1035. void r156standard_compile_target_to_jvm(T156* C){
  1036. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T156* C1=C;
  1037. r24call_proc_call_mapping((T24*)(oBC12jvm),(T0*)C1);
  1038. }/*]*/
  1039. /*]*/
  1040. X52jvm_check_class_invariant(r156result_type(C));
  1041. }
  1042. /*No:CALL_N.compile_to_jvm_assignment*/
  1043. /*No:CALL_N.fz_07*/
  1044.  
  1045.  
  1046. void r156compile_to_jvm_old(T156* C){
  1047. X109compile_to_jvm_old((C)->_target/*4*/);
  1048. /*[IF*/
  1049. if((/*(IRF4.6arg_count*/r152count(((T152*)((C)->_arguments/*12*/)))/*)*/)>(0)){
  1050. r152compile_to_jvm_old((T152*)((C)->_arguments/*12*/));
  1051. }
  1052. /*FI]*/
  1053. }
  1054. /*No:CALL_N.jvm_assign*/
  1055. /*No:CALL_N.jvm_branch_if_false*/
  1056. /*No:CALL_N.compile_to_jvm*/
  1057. /*No:CALL_N.arg_count*/
  1058.  
  1059.  
  1060. void r156with(T156* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  1061. C->_target=a1;
  1062. C->_feature_name=a2;
  1063. C->_arguments=a3;
  1064. C->_run_feature=a4;
  1065. r156run_feature_match(C,a5);
  1066. }
  1067. /*No:CALL_N.call_proc_call_c2jvm*/
  1068. /*No:CALL_N.is_result*/
  1069. /*No:CALL_N.fatal_error*/
  1070.  
  1071.  
  1072. void r156run_feature_match(T156* C,T0* a1){
  1073. r156run_feature_has_result(C);
  1074. r152match_with((T152*)((C)->_arguments/*12*/),(C)->_run_feature/*16*/,a1);
  1075. }
  1076. /*No:CALL_N.arguments*/
  1077.  
  1078.  
  1079. T0* r156runnable_expression(T0* a1,T0* a2){
  1080. T0* R=NULL;
  1081. R=X109to_runnable(a1,a2);
  1082. /*[IF*/
  1083. if((R)==((void*)(NULL))){
  1084. r21add_position(X109start_position(a1));
  1085. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms121_16515);
  1086. r21fatal_error((T21*)(oBC12eh),b1);
  1087. }/*]*/
  1088. }
  1089. /*FI]*/
  1090. return R;
  1091. }
  1092. /*No:CALL_N.can_be_dropped*/
  1093. /*No:CALL_N.compile_target_to_jvm*/
  1094. /*No:CALL_N.isa_dca_inline_argument*/
  1095.  
  1096.  
  1097. void r156run_feature_has_result(T156* C){
  1098. /*[IF*/
  1099. if((X27result_type((C)->_run_feature/*16*/))==((void*)(NULL))){
  1100. r21add_position(X27start_position((C)->_run_feature/*16*/));
  1101. r21add_position(X50start_position((C)->_feature_name/*8*/));
  1102. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms120_53650);
  1103. r21fatal_error((T21*)(oBC12eh),b1);
  1104. }/*]*/
  1105. }
  1106. /*FI]*/
  1107. }
  1108.  
  1109.  
  1110. T2 r156jvm_standard_branch_if_false(T156* C){
  1111. T2 R=0;
  1112. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T156* C1=C;
  1113. r24call_proc_call_mapping((T24*)(oBC12jvm),(T0*)C1);
  1114. }/*]*/
  1115. /*]*/
  1116. R=r28opcode_ifeq((T28*)(oBC12code_attribute));
  1117. return R;
  1118. }
  1119.  
  1120.  
  1121. T0* r156run_feature_for(T156* C,T0* a1,T0* a2){
  1122. T0* R=NULL;
  1123. T0* _rc=NULL;
  1124. _rc=X52run_class(X109result_type(a1));
  1125. R=r23get_rf(((T23*)_rc),a1,(C)->_feature_name/*8*/,a2);
  1126. return R;
  1127. }
  1128. /*No:CALL_N.target*/
  1129.  
  1130.  
  1131. void r156error(T0* a1,T0* a2){
  1132. r21add_position(a1);
  1133. r21error((T21*)(oBC12eh),a2);
  1134. }
  1135.  
  1136.  
  1137. void r156make(T156* C,T0* a1,T0* a2,T0* a3){
  1138. C->_target=a1;
  1139. C->_feature_name=a2;
  1140. C->_arguments=a3;
  1141. }
  1142. /*No:CALL_N.is_current*/
  1143.  
  1144.  
  1145. T2 r156standard_compile_to_jvm_into(T156* C,T0* a1){
  1146. T2 R=0;
  1147. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T156* C1=C;
  1148. r24call_proc_call_mapping((T24*)(oBC12jvm),(T0*)C1);
  1149. }/*]*/
  1150. /*]*/
  1151. R=X52jvm_convert_to(X52run_type(r156result_type(C)),a1);
  1152. return R;
  1153. }
  1154. /*No:CALL_N.is_void*/
  1155.  
  1156.  
  1157. T2 r156jvm_standard_branch_if_true(T156* C){
  1158. T2 R=0;
  1159. /*[IRF3.4compile_to_jvm*//*[IRF3.6call_proc_call_c2jvm*/{T156* C1=C;
  1160. r24call_proc_call_mapping((T24*)(oBC12jvm),(T0*)C1);
  1161. }/*]*/
  1162. /*]*/
  1163. R=r28opcode_ifne((T28*)(oBC12code_attribute));
  1164. return R;
  1165. }
  1166.  
  1167.  
  1168. void r156afd_check(T156* C){
  1169. T0* _running=NULL;
  1170. T0* _rc=NULL;
  1171. _rc=X52run_class(X109result_type((C)->_target/*4*/));
  1172. _running=(((T23*)_rc))->_running/*12*/;
  1173. /*[IF*/
  1174. if((_running)==((void*)(NULL))){
  1175. r21add_position(X109start_position((C)->_target/*4*/));
  1176. /*[IRF3.6append*/{T0* b1=((T0*)ms121_181815);
  1177. r7append((T7*)(oBC21explanation),b1);
  1178. }/*]*/
  1179. /*[IRF3.6append*/{T0* b1=X52run_time_mark((((T23*)_rc))->_current_type/*0*/);
  1180. r7append((T7*)(oBC21explanation),b1);
  1181. }/*]*/
  1182. /*[IRF3.6append*/{T0* b1=((T0*)ms13_20094);
  1183. r7append((T7*)(oBC21explanation),b1);
  1184. }/*]*/
  1185. r21print_as_warning((T21*)(oBC12eh));
  1186. r23set_at_run_time(((T23*)_rc));
  1187. }
  1188.  else if((r340count(((T340*)_running)))>(1)){
  1189. r335update((C)->_target/*4*/,(C)->_run_feature/*16*/);
  1190. }
  1191. /*FI]*/
  1192. X109afd_check((C)->_target/*4*/);
  1193. /*[IF*/
  1194. if((/*(IRF4.6arg_count*/r152count(((T152*)((C)->_arguments/*12*/)))/*)*/)>(0)){
  1195. r152afd_check((T152*)((C)->_arguments/*12*/));
  1196. }
  1197. /*FI]*/
  1198. }
  1199.  
  1200.  
  1201. void r45set_fieldref(T45* C,T0* a1){
  1202. C->_tag='\11';
  1203. r7copy((T7*)((C)->_info/*1*/),a1);
  1204. }
  1205.  
  1206.  
  1207. T6 r45is_methodref_idx(T45* C,T2 a1,T2 a2){
  1208. T6 R=0;
  1209. /*[IF*/
  1210. if(('\n')==((C)->_tag/*0*/)){
  1211. /*[IF*/
  1212. if((r45u2_to_integer(C,1))==(a1)){
  1213. R=(r45u2_to_integer(C,3))==(a2);
  1214. }
  1215. /*FI]*/
  1216. }
  1217. /*FI]*/
  1218. return R;
  1219. }
  1220. /*No:CP_INFO.tag*/
  1221.  
  1222.  
  1223. T6 r45is_class_idx(T45* C,T2 a1){
  1224. T6 R=0;
  1225. /*[IF*/
  1226. if(('\7')==((C)->_tag/*0*/)){
  1227. R=(r45u2_to_integer(C,1))==(a1);
  1228. }
  1229. /*FI]*/
  1230. return R;
  1231. }
  1232.  
  1233.  
  1234. T6 r45is_fieldref_idx(T45* C,T2 a1,T2 a2){
  1235. T6 R=0;
  1236. /*[IF*/
  1237. if(('\11')==((C)->_tag/*0*/)){
  1238. /*[IF*/
  1239. if((r45u2_to_integer(C,1))==(a1)){
  1240. R=(r45u2_to_integer(C,3))==(a2);
  1241. }
  1242. /*FI]*/
  1243. }
  1244. /*FI]*/
  1245. return R;
  1246. }
  1247.  
  1248.  
  1249. void r45set_methodref(T45* C,T0* a1){
  1250. C->_tag='\n';
  1251. r7copy((T7*)((C)->_info/*1*/),a1);
  1252. }
  1253.  
  1254.  
  1255. T6 r45is_string_idx(T45* C,T2 a1){
  1256. T6 R=0;
  1257. /*[IF*/
  1258. if(('\10')==((C)->_tag/*0*/)){
  1259. R=(r45u2_to_integer(C,1))==(a1);
  1260. }
  1261. /*FI]*/
  1262. return R;
  1263. }
  1264. /*No:CP_INFO.info*/
  1265.  
  1266.  
  1267. void r45set_string(T45* C,T0* a1){
  1268. T3 _c=0;
  1269. T2 _i=0;
  1270. C->_tag='\10';
  1271. /*[IRF3.3clear*/((((T7*)((T7*)((C)->_info/*1*/))))->_count)=(0);
  1272. /*]*/
  1273. r7extend((T7*)((C)->_info/*1*/),/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(1)-(1)]/*)*/);
  1274. r7extend((T7*)((C)->_info/*1*/),/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(2)-(1)]/*)*/);
  1275. _i=3;
  1276. while (!((_i)>((((T7*)a1))->_count/*4*/))) {
  1277. _c=/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(_i)-(1)]/*)*/;
  1278. /*[IF*/
  1279. if((_c)==('\0')){
  1280. r7extend((T7*)((C)->_info/*1*/),'\300');
  1281. r7extend((T7*)((C)->_info/*1*/),'\200');
  1282. }
  1283. else{
  1284. r7extend((T7*)((C)->_info/*1*/),_c);
  1285. }
  1286. /*FI]*/
  1287. _i=(_i)+(1);
  1288. }
  1289. }
  1290. /*No:CP_INFO.Constant_methodref*/
  1291. /*No:CP_INFO.Constant_name_and_type*/
  1292. /*No:CP_INFO.Constant_fieldref*/
  1293. /*No:CP_INFO.Constant_class*/
  1294.  
  1295.  
  1296. void r45set_class(T45* C,T0* a1){
  1297. C->_tag='\7';
  1298. r7copy((T7*)((C)->_info/*1*/),a1);
  1299. }
  1300.  
  1301.  
  1302. T6 r45is_utf8_idx(T45* C,T0* a1){
  1303. T6 R=0;
  1304. T2 _i2=0;
  1305. T2 _i1=0;
  1306. /*[IF*/
  1307. if(('\1')==((C)->_tag/*0*/)){
  1308. /*[IF*/
  1309. if((r45u2_to_integer(C,1))==((((T7*)a1))->_count/*4*/)){
  1310. _i1=((((T7*)a1))->_count/*4*/)+(1);
  1311. _i2=(((T7*)((C)->_info/*1*/))->_count/*4*/)+(1);
  1312. R=1;
  1313. while (!((!(R))||((_i1)==(1)))) {
  1314. _i1=(_i1)-(1);
  1315. _i2=(_i2)-(1);
  1316. R=(/*(IRF4.6item*/((((T7*)a1))->_storage/*0*/)[(_i1)-(1)]/*)*/)==(/*(IRF4.6item*/(((T7*)((C)->_info/*1*/))->_storage/*0*/)[(_i2)-(1)]/*)*/);
  1317. }
  1318. }
  1319. /*FI]*/
  1320. }
  1321. /*FI]*/
  1322. return R;
  1323. }
  1324.  
  1325.  
  1326. void r45set_name_and_type(T45* C,T0* a1){
  1327. C->_tag='\14';
  1328. r7copy((T7*)((C)->_info/*1*/),a1);
  1329. }
  1330.  
  1331.  
  1332. void r45b_put(T45* C){
  1333. r24b_put_u1((T24*)(oBC12jvm),(C)->_tag/*0*/);
  1334. r24b_put_byte_string((T24*)(oBC12jvm),(C)->_info/*1*/);
  1335. }
  1336.  
  1337.  
  1338. void r45clear(T45* C){
  1339. C->_tag='\0';
  1340. /*[IF*/
  1341. if(((C)->_info/*1*/)==((void*)(NULL))){
  1342. {T7*n=malloc(sizeof(*n));
  1343. *n=M7;
  1344. r7make(n,4);
  1345. C->_info=(T0*)n;
  1346. }
  1347. }
  1348. else{
  1349. /*[IRF3.3clear*/((((T7*)((T7*)((C)->_info/*1*/))))->_count)=(0);
  1350. /*]*/
  1351. }
  1352. /*FI]*/
  1353. }
  1354. /*No:CP_INFO.Constant_string*/
  1355.  
  1356.  
  1357. T6 r45is_name_and_type_idx(T45* C,T2 a1,T2 a2){
  1358. T6 R=0;
  1359. /*[IF*/
  1360. if(('\14')==((C)->_tag/*0*/)){
  1361. /*[IF*/
  1362. if((r45u2_to_integer(C,1))==(a1)){
  1363. R=(r45u2_to_integer(C,3))==(a2);
  1364. }
  1365. /*FI]*/
  1366. }
  1367. /*FI]*/
  1368. return R;
  1369. }
  1370. /*No:CP_INFO.Constant_utf8*/
  1371.  
  1372.  
  1373. void r45set_utf8(T45* C,T0* a1){
  1374. C->_tag='\1';
  1375. r7copy((T7*)((C)->_info/*1*/),a1);
  1376. }
  1377. /*No:CP_INFO.Constant_empty*/
  1378.  
  1379.  
  1380. T2 r45u2_to_integer(T45* C,T2 a1){
  1381. T2 R=0;
  1382. R=(((unsigned char)/*(IRF4.6item*/(((T7*)((C)->_info/*1*/))->_storage/*0*/)[(a1)-(1)]/*)*/))*(256);
  1383. R=(R)+(((unsigned char)/*(IRF4.6item*/(((T7*)((C)->_info/*1*/))->_storage/*0*/)[((a1)+(1))-(1)]/*)*/));
  1384. return R;
  1385. }
  1386.  
  1387.  
  1388. T0* r89to_old_name(T89* C,T0* a1){
  1389. T0* R=NULL;
  1390. T0* _fn_to_key=NULL;
  1391. T2 _i=0;
  1392. _i=1;
  1393. _fn_to_key=X50to_key(a1);
  1394. while (!(((R)!=((void*)(NULL)))||((_i)>(((T91*)((C)->_list/*0*/))->_upper/*8*/)))) {
  1395. /*[IF*/
  1396. if((X50to_key(((T90*)(r91item((T91*)((C)->_list/*0*/),_i)))->_new_name/*4*/))==((void*)(_fn_to_key))){
  1397. R=((T90*)(r91item((T91*)((C)->_list/*0*/),_i)))->_old_name/*0*/;
  1398. }
  1399. /*FI]*/
  1400. _i=(_i)+(1);
  1401. }
  1402. /*[IF*/
  1403. if((R)==((void*)(NULL))){
  1404. R=a1;
  1405. }
  1406. /*FI]*/
  1407. return R;
  1408. }
  1409.  
  1410.  
  1411. T0* r89to_new_name(T89* C,T0* a1){
  1412. T0* R=NULL;
  1413. T0* _fn_to_key=NULL;
  1414. T2 _i=0;
  1415. _i=1;
  1416. _fn_to_key=X50to_key(a1);
  1417. while (!(((R)!=((void*)(NULL)))||((_i)>(((T91*)((C)->_list/*0*/))->_upper/*8*/)))) {
  1418. /*[IF*/
  1419. if((X50to_key(((T90*)(r91item((T91*)((C)->_list/*0*/),_i)))->_old_name/*0*/))==((void*)(_fn_to_key))){
  1420. R=((T90*)(r91item((T91*)((C)->_list/*0*/),_i)))->_new_name/*4*/;
  1421. }
  1422. /*FI]*/
  1423. _i=(_i)+(1);
  1424. }
  1425. /*[IF*/
  1426. if((R)==((void*)(NULL))){
  1427. R=a1;
  1428. }
  1429. /*FI]*/
  1430. return R;
  1431. }
  1432. /*No:RENAME_LIST.add_last*/
  1433.  
  1434.  
  1435. void r89get_started(T89* C,T0* a1){
  1436. T0* _rp2=NULL;
  1437. T0* _rp1=NULL;
  1438. T2 _j=0;
  1439. T2 _i=0;
  1440. _i=((T91*)((C)->_list/*0*/))->_upper/*8*/;
  1441. while (!((_i)==(0))) {
  1442. _rp1=r91item((T91*)((C)->_list/*0*/),_i);
  1443. /*[IF*/
  1444. if(!(r63has(((T63*)a1),(((T90*)_rp1))->_old_name/*0*/))){
  1445. r21add_position(X50start_position((((T90*)_rp1))->_old_name/*0*/));
  1446. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms89_102564);
  1447. r21fatal_error((T21*)(oBC12eh),b1);
  1448. }/*]*/
  1449. }
  1450. /*FI]*/
  1451. _i=(_i)-(1);
  1452. _j=_i;
  1453. while (!((_j)==(0))) {
  1454. _rp2=r91item((T91*)((C)->_list/*0*/),_j);
  1455. /*[IF*/
  1456. if((X50to_key((((T90*)_rp2))->_old_name/*0*/))==((void*)(X50to_key((((T90*)_rp1))->_old_name/*0*/)))){
  1457. r21add_position(X50start_position((((T90*)_rp1))->_old_name/*0*/));
  1458. r21add_position(X50start_position((((T90*)_rp2))->_old_name/*0*/));
  1459. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms89_122084);
  1460. r21fatal_error((T21*)(oBC12eh),b1);
  1461. }/*]*/
  1462. }
  1463. /*FI]*/
  1464. _j=(_j)-(1);
  1465. }
  1466. }
  1467. }
  1468. /*No:RENAME_LIST.make*/
  1469.  
  1470.  
  1471. T6 r89affect(T89* C,T0* a1){
  1472. T6 R=0;
  1473. T0* _fn_to_key=NULL;
  1474. T0* _rp=NULL;
  1475. T2 _i=0;
  1476. _i=((T91*)((C)->_list/*0*/))->_upper/*8*/;
  1477. while (!((R)||((_i)==(0)))) {
  1478. _rp=r91item((T91*)((C)->_list/*0*/),_i);
  1479. _fn_to_key=X50to_key(a1);
  1480. /*[IF*/
  1481. if(((X50to_key((((T90*)_rp))->_new_name/*4*/))==((void*)(_fn_to_key)))||((X50to_key((((T90*)_rp))->_old_name/*0*/))==((void*)(_fn_to_key)))){
  1482. R=1;
  1483. }
  1484. else{
  1485. _i=(_i)-(1);
  1486. }
  1487. /*FI]*/
  1488. }
  1489. return R;
  1490. }
  1491. /*No:RENAME_LIST.list*/
  1492. /*No:RENAME_LIST.fatal_error*/
  1493.  
  1494.  
  1495. void r28opcode_putfield(T28* C,T2 a1,T2 a2){
  1496. r28opcode(C,181,a2);
  1497. r28add_u2(a1);
  1498. }
  1499.  
  1500.  
  1501. void r28opcode_getfield(T28* C,T2 a1,T2 a2){
  1502. r28opcode(C,180,a2);
  1503. r28add_u2(a1);
  1504. }
  1505. /*No:CODE_ATTRIBUTE.opcode_iload_3*/
  1506.  
  1507.  
  1508. void r28opcode(T28* C,T2 a1,T2 a2){
  1509. T2 _cs=0;
  1510. /*[IRF3.6add_u1*/{T2 b1=a1;
  1511. r48add_last((T48*)(oBC28code),b1);
  1512. }/*]*/
  1513. _cs=((C)->_stack_level/*8*/)+(a2);
  1514. /*[IF*/
  1515. if((_cs)>=(0)){
  1516. C->_stack_level=_cs;
  1517. }
  1518. /*FI]*/
  1519. /*[IF*/
  1520. if(((C)->_stack_level/*8*/)>((C)->_max_stack/*0*/)){
  1521. C->_max_stack=(C)->_stack_level/*8*/;
  1522. }
  1523. /*FI]*/
  1524. }
  1525. /*No:CODE_ATTRIBUTE.opcode_irem*/
  1526.  
  1527.  
  1528. void r28opcode_ldc(T28* C,T2 a1){
  1529. /*[IF*/
  1530. if((a1)<(255)){
  1531. r28opcode(C,18,1);
  1532. /*[IRF3.6add_u1*/{T2 b1=a1;
  1533. r48add_last((T48*)(oBC28code),b1);
  1534. }/*]*/
  1535. }
  1536. else{
  1537. r28opcode(C,19,1);
  1538. r28add_u2(a1);
  1539. }
  1540. /*FI]*/
  1541. }
  1542.  
  1543.  
  1544. void r28opcode_system_err(T28* C){
  1545. T2 _idx=0;
  1546. _idx=r29idx_fieldref3((T29*)(oBC12constant_pool),((T0*)ms28_35584),((T0*)ms13_1005),((T0*)ms13_36708a));
  1547. r28opcode_getstatic(C,_idx,1);
  1548. }
  1549.  
  1550.  
  1551. void r28runtime_error_bad_target(T28* C,T0* a1,T0* a2,T0* a3){
  1552. T2 _idx=0;
  1553. T0* _cp=NULL;
  1554. _cp=oBC12constant_pool;
  1555. r28push_position(C,a1);
  1556. r28opcode_ldc(C,r29idx_string(((T29*)_cp),X52run_time_mark(a2)));
  1557. /*[IF*/
  1558. if((a3)==((void*)(NULL))){
  1559. /*[IRF3.4opcode_aconst_null*/r28opcode(C,1,1);
  1560. /*]*/
  1561. }
  1562. else{
  1563. r28opcode_ldc(C,r29idx_string(((T29*)_cp),a3));
  1564. }
  1565. /*FI]*/
  1566. _idx=r29idx_methodref3(((T29*)_cp),((T0*)ms13_42084),((T0*)ms28_80664),((T0*)ms28_544698));
  1567. r28opcode_invokestatic(C,_idx,-(6));
  1568. }
  1569.  
  1570.  
  1571. void r28opcode_bitset_clone(T28* C){
  1572. T2 _idx=0;
  1573. T0* _cp=NULL;
  1574. _cp=oBC12constant_pool;
  1575. _idx=r29idx_methodref3(((T29*)_cp),((T0*)ms13_37376a),((T0*)ms13_2720),((T0*)ms13_31100));
  1576. r28opcode_invokevirtual(C,_idx,0);
  1577. _idx=r29idx_class2(((T29*)_cp),((T0*)ms13_37376a));
  1578. r28opcode_checkcast(C,_idx);
  1579. }
  1580.  
  1581.  
  1582. void r28opcode_push_manifest_string(T28* C,T0* a1){
  1583. T2 _ms_idx=0;
  1584. _ms_idx=r29idx_string2((T29*)(oBC12constant_pool),a1);
  1585. r28opcode_ldc(C,_ms_idx);
  1586. r28opcode_java_string2eiffel_string(C);
  1587. }
  1588.  
  1589.  
  1590. T2 r28opcode_ifnull(T28* C){
  1591. T2 R=0;
  1592. r28opcode(C,198,-(1));
  1593. R=r28skip_2_bytes();
  1594. return R;
  1595. }
  1596. /*No:CODE_ATTRIBUTE.max_locals*/
  1597. /*No:CODE_ATTRIBUTE.opcode_astore_1*/
  1598. /*No:CODE_ATTRIBUTE.opcode_dup_x1*/
  1599. /*No:CODE_ATTRIBUTE.opcode_iconst_1*/
  1600. /*No:CODE_ATTRIBUTE.us_die_with_code*/
  1601. /*No:CODE_ATTRIBUTE.opcode_areturn*/
  1602. /*No:CODE_ATTRIBUTE.opcode_freturn*/
  1603. /*No:CODE_ATTRIBUTE.opcode_dreturn*/
  1604. /*No:CODE_ATTRIBUTE.opcode_ireturn*/
  1605. /*No:CODE_ATTRIBUTE.opcode_dneg*/
  1606. /*No:CODE_ATTRIBUTE.opcode_fneg*/
  1607. /*No:CODE_ATTRIBUTE.opcode_ineg*/
  1608.  
  1609.  
  1610. T2 r28extra_local(T28* C,T0* a1){
  1611. T2 R=0;
  1612. R=(C)->_max_locals/*4*/;
  1613. C->_max_locals=((C)->_max_locals/*4*/)+(X52jvm_stack_space(a1));
  1614. return R;
  1615. }
  1616. /*No:CODE_ATTRIBUTE.skip_check*/
  1617.  
  1618.  
  1619. void r28opcode_system_in(T28* C){
  1620. T2 _idx=0;
  1621. _idx=r29idx_fieldref3((T29*)(oBC12constant_pool),((T0*)ms28_35584),((T0*)ms13_436),((T0*)ms13_36708));
  1622. r28opcode_getstatic(C,_idx,1);
  1623. }
  1624.  
  1625.  
  1626. T2 r28opcode_if_icmpgt(T28* C){
  1627. T2 R=0;
  1628. r28opcode(C,163,-(2));
  1629. R=r28skip_2_bytes();
  1630. return R;
  1631. }
  1632.  
  1633.  
  1634. T2 r28opcode_if_icmpge(T28* C){
  1635. T2 R=0;
  1636. r28opcode(C,162,-(2));
  1637. R=r28skip_2_bytes();
  1638. return R;
  1639. }
  1640.  
  1641.  
  1642. T2 r28opcode_if_icmplt(T28* C){
  1643. T2 R=0;
  1644. r28opcode(C,161,-(2));
  1645. R=r28skip_2_bytes();
  1646. return R;
  1647. }
  1648.  
  1649.  
  1650. T2 r28opcode_if_icmple(T28* C){
  1651. T2 R=0;
  1652. r28opcode(C,164,-(2));
  1653. R=r28skip_2_bytes();
  1654. return R;
  1655. }
  1656.  
  1657.  
  1658. T2 r28opcode_if_icmpeq(T28* C){
  1659. T2 R=0;
  1660. r28opcode(C,159,-(2));
  1661. R=r28skip_2_bytes();
  1662. return R;
  1663. }
  1664.  
  1665.  
  1666. T2 r28opcode_if_acmpeq(T28* C){
  1667. T2 R=0;
  1668. r28opcode(C,165,-(2));
  1669. R=r28skip_2_bytes();
  1670. return R;
  1671. }
  1672.  
  1673.  
  1674. T2 r28opcode_if_icmpne(T28* C){
  1675. T2 R=0;
  1676. r28opcode(C,160,-(2));
  1677. R=r28skip_2_bytes();
  1678. return R;
  1679. }
  1680.  
  1681.  
  1682. T2 r28opcode_if_acmpne(T28* C){
  1683. T2 R=0;
  1684. r28opcode(C,166,-(2));
  1685. R=r28skip_2_bytes();
  1686. return R;
  1687. }
  1688. /*No:CODE_ATTRIBUTE.resolve_branches*/
  1689.  
  1690.  
  1691. void r28opcode_string2float(T28* C,T0* a1){
  1692. r28opcode_string2double(C,a1);
  1693. /*[IRF3.4opcode_d2f*/r28opcode(C,144,-(1));
  1694. /*]*/
  1695. }
  1696.  
  1697.  
  1698. void r28opcode_checkcast(T28* C,T2 a1){
  1699. r28opcode(C,192,0);
  1700. r28add_u2(a1);
  1701. }
  1702.  
  1703.  
  1704. void r28opcode_invokestatic(T28* C,T2 a1,T2 a2){
  1705. r28opcode(C,184,a2);
  1706. r28add_u2(a1);
  1707. }
  1708. /*No:CODE_ATTRIBUTE.fz_a0*/
  1709.  
  1710.  
  1711. T2 r28opcode_iflt(T28* C){
  1712. T2 R=0;
  1713. r28opcode(C,155,-(1));
  1714. R=r28skip_2_bytes();
  1715. return R;
  1716. }
  1717.  
  1718.  
  1719. T2 r28opcode_ifgt(T28* C){
  1720. T2 R=0;
  1721. r28opcode(C,157,-(1));
  1722. R=r28skip_2_bytes();
  1723. return R;
  1724. }
  1725.  
  1726.  
  1727. void r28store_in(T28* C,T0* a1){
  1728. T2 _i=0;
  1729. r28append_u2(a1,((T29*)(oBC12constant_pool))->_idx_constant_utf8/*4*/);
  1730. r28append_u4(a1,(12)+(/*(IRF4.9program_counter*//*(IRF4.6count*/(((T48*)(oBC28code))->_upper/*8*/)+(1)/*)*//*)*/));
  1731. r28append_u2(a1,(C)->_max_stack/*0*/);
  1732. r28append_u2(a1,(C)->_max_locals/*4*/);
  1733. r28append_u4(a1,/*(IRF4.9program_counter*//*(IRF4.6count*/(((T48*)(oBC28code))->_upper/*8*/)+(1)/*)*//*)*/);
  1734. _i=0;
  1735. while (!((_i)>(((T48*)(oBC28code))->_upper/*8*/))) {
  1736. /*[IRF3.6append_u1*/{T0* b1=a1;
  1737. T2 b2=/*(IRF4.6item*/(((T48*)(oBC28code))->_storage/*0*/)[_i]/*)*/;
  1738. r7extend(((T7*)b1),((T3)(b2)));
  1739. }/*]*/
  1740. _i=(_i)+(1);
  1741. }
  1742. r47store_in(a1);
  1743. r28append_u2(a1,0);
  1744. }
  1745. T0*oBC28branches=NULL;
  1746.  
  1747.  
  1748. T2 r28skip_2_bytes(void){
  1749. T2 R=0;
  1750. R=/*(IRF4.9program_counter*//*(IRF4.6count*/(((T48*)(oBC28code))->_upper/*8*/)+(1)/*)*//*)*/;
  1751. r48add_last((T48*)(oBC28code),0);
  1752. r48add_last((T48*)(oBC28code),0);
  1753. return R;
  1754. }
  1755.  
  1756.  
  1757. void r28opcode_push_integer(T28* C,T2 a1){
  1758. /*[IF*/
  1759. if((a1)<(-(32768))){
  1760. r28push_strange_integer(C,a1);
  1761. }
  1762.  else if((a1)<(-(128))){
  1763. r28opcode_sipush(C,a1);
  1764. }
  1765.  else if((a1)<(-(1))){
  1766. r28opcode_bipush(C,(256)+(a1));
  1767. }
  1768.  else if((a1)<=(5)){
  1769. /*[IRF3.6opcode_iconst_i*/{T28* C1=C;
  1770. T2 b1=a1;
  1771. r28opcode(C1,(3)+(b1),1);
  1772. }/*]*/
  1773. }
  1774.  else if((a1)<=(127)){
  1775. r28opcode_bipush(C,a1);
  1776. }
  1777.  else if((a1)<=(32767)){
  1778. r28opcode_sipush(C,a1);
  1779. }
  1780. else{
  1781. r28push_strange_integer(C,a1);
  1782. }
  1783. /*FI]*/
  1784. }
  1785.  
  1786.  
  1787. void r28opcode_newarray(T28* C,T2 a1){
  1788. r28opcode(C,188,0);
  1789. /*[IRF3.6add_u1*/{T2 b1=a1;
  1790. r48add_last((T48*)(oBC28code),b1);
  1791. }/*]*/
  1792. }
  1793. /*No:CODE_ATTRIBUTE.us_se_system*/
  1794. /*No:CODE_ATTRIBUTE.opcode_f2d*/
  1795. /*No:CODE_ATTRIBUTE.opcode_i2d*/
  1796. /*No:CODE_ATTRIBUTE.fz_a6*/
  1797.  
  1798.  
  1799. void r28opcode_bipush(T28* C,T2 a1){
  1800. r28opcode(C,16,1);
  1801. /*[IRF3.6add_u1*/{T2 b1=a1;
  1802. r48add_last((T48*)(oBC28code),b1);
  1803. }/*]*/
  1804. }
  1805.  
  1806.  
  1807. void r28opcode_sipush(T28* C,T2 a1){
  1808. r28opcode(C,17,1);
  1809. r28add_u2(a1);
  1810. }
  1811. /*No:CODE_ATTRIBUTE.fz_a7*/
  1812.  
  1813.  
  1814. void r28opcode_bytes_array2eiffel_string(T28* C){
  1815. T0* _rc_string=NULL;
  1816. T2 _loc=0;
  1817. T0* _cp=NULL;
  1818. _cp=oBC12constant_pool;
  1819. _rc_string=r276run_class((T276*)(r28type_string()));
  1820. _loc=r28extra_local_size1(C);
  1821. r28opcode_astore(C,_loc);
  1822. r23jvm_basic_new(((T23*)_rc_string));
  1823. /*[IRF3.4opcode_dup*/r28opcode(C,89,1);
  1824. /*]*/
  1825. r28opcode_aload(C,_loc);
  1826. /*[IRF3.4opcode_arraylength*/r28opcode(C,190,0);
  1827. /*]*/
  1828. r28opcode_putfield(C,r29idx_eiffel_string_count_fieldref(((T29*)_cp)),-(2));
  1829. /*[IRF3.4opcode_dup*/r28opcode(C,89,1);
  1830. /*]*/
  1831. r28opcode_aload(C,_loc);
  1832. /*[IRF3.4opcode_arraylength*/r28opcode(C,190,0);
  1833. /*]*/
  1834. r28opcode_putfield(C,r29idx_eiffel_string_capacity_fieldref(((T29*)_cp)),-(2));
  1835. /*[IRF3.4opcode_dup*/r28opcode(C,89,1);
  1836. /*]*/
  1837. r28opcode_aload(C,_loc);
  1838. r28opcode_putfield(C,r29idx_eiffel_string_storage_fieldref(((T29*)_cp)),-(2));
  1839. }
  1840.  
  1841.  
  1842. void r28opcode_java_string2eiffel_string(T28* C){
  1843. r28opcode_java_string2bytes_array(C);
  1844. r28opcode_bytes_array2eiffel_string(C);
  1845. }
  1846.  
  1847.  
  1848. void r28runtime_se_getenv(T28* C){
  1849. T2 _idx=0;
  1850. T0* _cp=NULL;
  1851. T2 _point1=0;
  1852. _cp=oBC12constant_pool;
  1853. _idx=r29idx_methodref3(((T29*)_cp),((T0*)ms13_42084),((T0*)ms28_14328),((T0*)ms28_102372));
  1854. r28opcode_invokestatic(C,_idx,0);
  1855. /*[IRF3.4opcode_dup*/r28opcode(C,89,1);
  1856. /*]*/
  1857. _point1=r28opcode_ifnull(C);
  1858. r28opcode_java_string2eiffel_string(C);
  1859. r28resolve_u2_branch(_point1);
  1860. }
  1861. T0*oBC28code=NULL;
  1862. /*No:CODE_ATTRIBUTE.check_flag_idx*/
  1863.  
  1864.  
  1865. void r28opcode_java_string2bytes_array(T28* C){
  1866. T2 _idx=0;
  1867. _idx=r29idx_methodref3((T29*)(oBC12constant_pool),((T0*)ms13_34048),((T0*)ms13_11536),((T0*)ms13_992));
  1868. r28opcode_invokevirtual(C,_idx,0);
  1869. }
  1870.  
  1871.  
  1872. void r28se_trace(T28* C,T0* a1,T0* a2){
  1873. T2 _idx=0;
  1874. T0* _cp=NULL;
  1875. /*[IF*/
  1876. if((a2)!=((void*)(NULL))){
  1877. _cp=oBC12constant_pool;
  1878. X52jvm_push_local(a1,0);
  1879. r28push_position(C,a2);
  1880. /*[IRF3.3clear*/((((T7*)((T7*)(oBC28tmp_string))))->_count)=(0);
  1881. /*]*/
  1882. r7extend((T7*)(oBC28tmp_string),'\50');
  1883. /*[IF*/
  1884. if(X52is_basic_eiffel_expanded(a1)){
  1885. X52jvm_descriptor_in(a1,oBC28tmp_string);
  1886. }
  1887. else{
  1888. r7append((T7*)(oBC28tmp_string),((T0*)ms28_28278));
  1889. }
  1890. /*FI]*/
  1891. r7append((T7*)(oBC28tmp_string),((T0*)ms28_51304));
  1892. _idx=r29idx_methodref3(((T29*)_cp),((T0*)ms13_42084),((T0*)ms28_10912),oBC28tmp_string);
  1893. r28opcode_invokestatic(C,_idx,(-(X52jvm_stack_space(a1)))-(3));
  1894. }
  1895. else{
  1896. /*[IRF3.4opcode_pop*/r28opcode(C,87,-(1));
  1897. /*]*/
  1898. }
  1899. /*FI]*/
  1900. }
  1901. /*No:CODE_ATTRIBUTE.opcode_dload_0*/
  1902. /*No:CODE_ATTRIBUTE.opcode_aload_0*/
  1903.  
  1904.  
  1905. T0* r28type_string(void){
  1906. if(fBC12type_string==0){
  1907. fBC12type_string=1;
  1908. {T276*n=malloc(sizeof(*n));
  1909. *n=M276;
  1910. r276make(n,NULL);
  1911. oBC12type_string=(T0*)n;
  1912. }
  1913. }
  1914. return oBC12type_string;}
  1915. /*No:CODE_ATTRIBUTE.fz_descriptor1*/
  1916. /*No:CODE_ATTRIBUTE.fz_i*/
  1917.  
  1918.  
  1919. void r28runtime_print_run_time_stack(T28* C){
  1920. T2 _idx=0;
  1921. T0* _cp=NULL;
  1922. _cp=oBC12constant_pool;
  1923. _idx=r29idx_methodref3(((T29*)_cp),((T0*)ms13_42084),((T0*)ms14_54240),((T0*)ms13_519));
  1924. r28opcode_invokestatic(C,_idx,0);
  1925. }
  1926. /*No:CODE_ATTRIBUTE.fz_jvm_root*/
  1927. /*No:CODE_ATTRIBUTE.opcode_dup_x2*/
  1928. /*No:CODE_ATTRIBUTE.us_se_string2double*/
  1929. /*No:CODE_ATTRIBUTE.opcode_faload*/
  1930. /*No:CODE_ATTRIBUTE.opcode_iaload*/
  1931. /*No:CODE_ATTRIBUTE.opcode_daload*/
  1932. /*No:CODE_ATTRIBUTE.opcode_baload*/
  1933. /*No:CODE_ATTRIBUTE.opcode_aaload*/
  1934. /*No:CODE_ATTRIBUTE.opcode_dsub*/
  1935. /*No:CODE_ATTRIBUTE.opcode_fsub*/
  1936. /*No:CODE_ATTRIBUTE.opcode_isub*/
  1937. T0*oBC28exception_table=NULL;
  1938.  
  1939.  
  1940. void r28resolve_with(T0* a1){
  1941. T2 _i=0;
  1942. _i=(((T48*)a1))->_upper/*8*/;
  1943. while (!((_i)<(0))) {
  1944. r28resolve_u2_branch(/*(IRF4.6item*/((((T48*)a1))->_storage/*0*/)[_i]/*)*/);
  1945. _i=(_i)-(1);
  1946. }
  1947. }
  1948.  
  1949.  
  1950. void r28opcode_aload(T28* C,T2 a1){
  1951. /*[IF*/
  1952. if((a1)<=(3)){
  1953. r28opcode(C,(42)+(a1),1);
  1954. }
  1955. else{
  1956. r28opcode(C,25,1);
  1957. /*[IRF3.6add_u1*/{T2 b1=a1;
  1958. r48add_last((T48*)(oBC28code),b1);
  1959. }/*]*/
  1960. }
  1961. /*FI]*/
  1962. }
  1963.  
  1964.  
  1965. void r28opcode_fload(T28* C,T2 a1){
  1966. /*[IF*/
  1967. if((a1)<=(3)){
  1968. r28opcode(C,(34)+(a1),1);
  1969. }
  1970. else{
  1971. r28opcode(C,23,1);
  1972. /*[IRF3.6add_u1*/{T2 b1=a1;
  1973. r48add_last((T48*)(oBC28code),b1);
  1974. }/*]*/
  1975. }
  1976. /*FI]*/
  1977. }
  1978.  
  1979.  
  1980. void r28opcode_dload(T28* C,T2 a1){
  1981. /*[IF*/
  1982. if((a1)<=(3)){
  1983. r28opcode(C,(38)+(a1),2);
  1984. }
  1985. else{
  1986. r28opcode(C,24,2);
  1987. /*[IRF3.6add_u1*/{T2 b1=a1;
  1988. r48add_last((T48*)(oBC28code),b1);
  1989. }/*]*/
  1990. }
  1991. /*FI]*/
  1992. }
  1993.  
  1994.  
  1995. void r28opcode_iload(T28* C,T2 a1){
  1996. /*[IF*/
  1997. if((a1)<=(3)){
  1998. r28opcode(C,(26)+(a1),1);
  1999. }
  2000. else{
  2001. r28opcode(C,21,1);
  2002. /*[IRF3.6add_u1*/{T2 b1=a1;
  2003. r48add_last((T48*)(oBC28code),b1);
  2004. }/*]*/
  2005. }
  2006. /*FI]*/
  2007. }
  2008. /*No:CODE_ATTRIBUTE.us_sfw_open*/
  2009. /*No:CODE_ATTRIBUTE.us_sfr_open*/
  2010.  
  2011.  
  2012. T2 r28opcode_goto(T28* C){
  2013. T2 R=0;
  2014. r28opcode(C,167,0);
  2015. R=r28skip_2_bytes();
  2016. return R;
  2017. }
  2018.  
  2019.